<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Bionic (Software)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Bionic_(Software)"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Bionic_Software rootpage-Bionic_Software skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Bionic (Software)</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><table class="float-right infobox toccolours toptextcells" style="border-spacing:5px; font-size:90%; text-align:left; width:21em;">
<tbody><tr>
<th colspan="2" class="hintergrundfarbe6" style="font-size:105%; text-align:center;">Bionic
</th></tr>
<tr>
<th colspan="2" class="hintergrundfarbe5" style="font-size:105%; text-align:center;">Basisdaten
<p class="mw-empty-elt">
</p>
</th></tr>
<tr>
<td><b><a href="Softwareentwickler" title="Softwareentwickler">Entwickler</a></b>
</td>
<td><a href="Open_Handset_Alliance" title="Open Handset Alliance">Open Handset Alliance</a>
</td></tr>
<tr>
<td><b>Erscheinungsjahr</b>
</td>
<td>2008
</td></tr>
<tr>
<td><b>Aktuelle <a href="Version_(Software)" title="Version (Software)">Version</a></b>
</td>
<td><span class="wikidata-content">1.0.14<sup id="cite_ref-_bc0ddb02c15a8c80_1-0" class="reference"><a href="#cite_note-_bc0ddb02c15a8c80-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></span> <br> (<span class="wikidata-content">12. Juli 2019</span>)
</td></tr>
<tr>
<td><b><a href="Betriebssystem" title="Betriebssystem">Betriebssystem</a></b>
</td>
<td><a href="Android_(Betriebssystem)" title="Android (Betriebssystem)">Android</a>
</td></tr>
<tr>
<td><b><a href="Programmiersprache" title="Programmiersprache">Programmiersprache</a></b>
</td>
<td><a href="C_(Programmiersprache)" title="C (Programmiersprache)">C</a>, <a href="C%2B%2B" title="C++">C++</a>, <a href="Assemblersprache" title="Assemblersprache">Assemblersprache</a>
</td></tr>
<tr>
<td><b>Kategorie</b>
</td>
<td><a href="Standardbibliothek" title="Standardbibliothek">Standardbibliothek</a>
</td></tr>
<tr>
<td><b>Lizenz</b>
</td>
<td><a href="BSD-Lizenz" title="BSD-Lizenz">BSD-Lizenz</a>
</td></tr>
<tr>
<td class="hintergrundfarbe5" colspan="2" style="text-align:center;"><a rel="nofollow" class="external text" href="https://android.googlesource.com/platform/bionic/">android.googlesource.com/platform/bionic/</a>
</td></tr></tbody></table>
<p><b>Bionic</b> ist eine <a href="Programmbibliothek" title="Programmbibliothek">Programmbibliothek</a> des <a href="Android_(Betriebssystem)" title="Android (Betriebssystem)">Android</a>-<a href="Betriebssystem" title="Betriebssystem">Betriebssystems</a>, die den Funktionsumfang der <a href="C-Standard-Bibliothek" title="C-Standard-Bibliothek">C-Standard-Bibliothek</a>, der Bibliothek für mathematische Funktionen <a href="Math.h" title="Math.h">libm</a>, der Bibliothek zum <a href="Dynamisches_Linken" class="mw-redirect" title="Dynamisches Linken">dynamischen Linken</a> libdl und weiteren Funktionsumfang bereitstellt. Bionic unterliegt der <a href="BSD-Lizenz" title="BSD-Lizenz">BSD-Lizenz</a> und wird von der <a href="Open_Handset_Alliance" title="Open Handset Alliance">Open Handset Alliance</a> weiterentwickelt.
</p><p>Der Name Bionic ist eine Anspielung auf den heterogenen Ursprung des genutzten <a href="Quellcode" class="mw-redirect" title="Quellcode">Quellcodes</a>.<sup id="cite_ref-BionicOverview_2-0" class="reference"><a href="#cite_note-BionicOverview-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Entwicklungsziele">Entwicklungsziele</h2></div>
<p>Mit Bionic sollte eine einfache, effiziente, BSD-lizenzierte C-Bibliothek für das Android-System erstellt werden. Das Entwicklungs-Motto lautete <i>keep it really simple</i>.<sup id="cite_ref-BionicOverview_2-1" class="reference"><a href="#cite_note-BionicOverview-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Android-Systeme sind häufig batteriebetrieben, verfügten über wenig <a href="Hauptspeicher" class="mw-redirect" title="Hauptspeicher">Haupt-</a> und <a href="Massenspeicher" title="Massenspeicher">Massenspeicher</a> und nutzten niedrig getaktete Prozessoren.
</p><p>Durch die BSD-Lizenzierung entfallen <a href="Copyleft" title="Copyleft">Copyleft</a>-Restriktionen, dadurch vereinfacht sich die Entwicklung proprietärer Bestandteile des Android-Systems.
</p><p>Populäre, häufig genutzte Erweiterungen der <a href="GNU-C-Bibliothek" title="GNU-C-Bibliothek">GNU-C-Bibliothek</a>, sowie der BSD-C-Bibliotheken wurden in Bionic übernommen.
</p><p>Als Betriebssystem-Kern ist ausschließlich <a href="Linux_(Kernel)" title="Linux (Kernel)">Linux</a> vorgesehen, eine Binär-Kompatibilität beispielsweise mit der GNU-C-Bibliothek ist nicht vorgesehen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Unterschiede_zu_POSIX">Unterschiede zu POSIX</h2></div>
<p>Ziel der Entwicklung von Bionic war eine weitgehende Kompatibilität zu <a href="POSIX" title="POSIX">POSIX</a> und dem C11-Standard der <a href="C_(Programmiersprache)" title="C (Programmiersprache)">Programmiersprache C</a>.
In der Android-Version <i>Oreo</i> aus dem Jahr 2018 sind dennoch etwa 70 POSIX-Funktionen der libc nicht enthalten. Ursache für dieses Auslassen von Funktionen ist u. a., dass bestimmte Funktionalität in Android nicht genutzt werden, so nutzt Android beispielsweise keine passwd- und group-Datenbanken, wodurch Zugriffsfunktionen wie <code>getpwent</code> nicht implementierbar sind und nicht benötigt werden.<sup id="cite_ref-BionicOverview_2-2" class="reference"><a href="#cite_note-BionicOverview-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>Einige Funktionalitäten wurde absichtlich nicht POSIX-konform gestaltet, so wurde etwa auf Unterstützung des <a href="Printf" title="Printf">printf</a>-Formats <code>%n</code> aus Sicherheitserwägungen verzichtet.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Unterstützte_Plattformen"><span id="Unterst.C3.BCtzte_Plattformen"></span>Unterstützte Plattformen</h2></div>
<p>Es werden die Plattformen <a href="IA-32" title="IA-32">x86</a>, <a href="X64" title="X64">x86-64</a>, <a href="Arm-Architektur" class="mw-redirect" title="Arm-Architektur">Armv7-a</a> und <a href="ARM64" class="mw-redirect" title="ARM64">ARM64</a> unterstützt. Bis zum Android Native Development Kit (NDK) r17 wurde ARMv5, <a href="MIPS-Architektur" title="MIPS-Architektur">MIPS</a> und MIPS64 unterstützt.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> Eine experimentelle <a href="SuperH" title="SuperH">SH-4</a> Unterstützung wurde kommerziell nie eingesetzt und ist inzwischen eingestellt.
</p>
<div class="mw-heading mw-heading2"><h2 id="Bestandteile">Bestandteile</h2></div>
<p>Teile der libc wie etwa stdio stammen aus <a href="OpenBSD" title="OpenBSD">OpenBSD</a>, der DNS-Resolver aus <a href="NetBSD" title="NetBSD">NetBSD</a>, der Quellcode der libm für mathematische Funktionen entspricht in weiten Teilen der <a href="FreeBSD" title="FreeBSD">FreeBSD</a>-Version, wurde aber von mehreren <a href="System-on-a-Chip" title="System-on-a-Chip">System-on-a-Chip</a>-Herstellern durch <a href="Assemblersprache" title="Assemblersprache">Assembler</a>-Implementierungen optimiert.<sup id="cite_ref-BionicOverview_2-3" class="reference"><a href="#cite_note-BionicOverview-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>Die <a href="Header-Datei" title="Header-Datei">Header-Dateien</a> zum Zugriff auf Linux-<a href="Systemaufruf" title="Systemaufruf">Systemaufrufe</a> werden automatisch aus den Header-Dateien des Linux-Quellcodes generiert, sämtlicher als Copyright-relevant angesehener Inhalt wird bei der Generierung entfernt.<sup id="cite_ref-BionicOverview_2-4" class="reference"><a href="#cite_note-BionicOverview-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>Die Unterstützung für POSIX-<a href="Thread_(Informatik)" title="Thread (Informatik)">Threads</a> (libpthread) sowie die Implementierung zum dynamischen Linken (libdl) wurden vollständig neu entwickelt.
</p><p>Funktionalitäten, die auf POSIX-Systemen in den Bibliotheken libpthread, libresolv und librt bereitgestellt werden, sind bei Bionic direkt in der libc implementiert.
</p>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://android.googlesource.com/platform/bionic/">Offizielles Versionsverwaltungssystem des Bionic Quellcodes</a></li>
<li><a rel="nofollow" class="external text" href="https://developer.android.com/ndk">Android Native Development Kit (NDK)</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-_bc0ddb02c15a8c80-1"><span class="mw-cite-backlink"><a href="#cite_ref-_bc0ddb02c15a8c80_1-0">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://github.com/aosp-mirror/platform_bionic/releases/tag/android-o-mr1-iot-release-1.0.14"><cite style="font-style:italic"><span lang="en">Release 1.0.14</span></cite>.</a> 12. Juli 2019 (abgerufen am 12. Juli 2019).</span>
</li>
<li id="cite_note-BionicOverview-2"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-BionicOverview_2-0">a</a></sup> <sup><a href="#cite_ref-BionicOverview_2-1">b</a></sup> <sup><a href="#cite_ref-BionicOverview_2-2">c</a></sup> <sup><a href="#cite_ref-BionicOverview_2-3">d</a></sup> <sup><a href="#cite_ref-BionicOverview_2-4">e</a></sup></span> <span class="reference-text"><span class="cite">The Android Open Source Project: <a rel="nofollow" class="external text" href="https://android.googlesource.com/platform/bionic/+/donut-release/libc/docs/OVERVIEW.TXT"><i>Bionic C Library Overview.</i></a> 3. März 2009,<span class="Abrufdatum"> abgerufen am 6. Dezember 2018</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3ABionic+%28Software%29&rft.title=Bionic+C+Library+Overview&rft.description=Bionic+C+Library+Overview&rft.identifier=https%3A%2F%2Fandroid.googlesource.com%2Fplatform%2Fbionic%2F%2B%2Fdonut-release%2Flibc%2Fdocs%2FOVERVIEW.TXT&rft.creator=The+Android+Open+Source+Project&rft.date=2009-03-03"> </span></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><span class="cite">Elliott Hughes: <a rel="nofollow" class="external text" href="https://marc.info/?l=openbsd-tech&m=139906913532531&w=2"><i>libc: #define to remove support for %n from printf(3)?</i></a> 2. Mai 2014,<span class="Abrufdatum"> abgerufen am 5. Dezember 2018</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3ABionic+%28Software%29&rft.title=libc%3A+%23define+to+remove+support+for+%25n+from+printf%283%29%3F&rft.description=libc%3A+%23define+to+remove+support+for+%25n+from+printf%283%29%3F&rft.identifier=https%3A%2F%2Fmarc.info%2F%3Fl%3Dopenbsd-tech%26m%3D139906913532531%26w%3D2&rft.creator=Elliott+Hughes&rft.date=2014-05-02&rft.language=englisch"> </span></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://developer.android.com/ndk/downloads/revision_history"><i>NDK Revision History.</i></a><span class="Abrufdatum"> Abgerufen am 6. Dezember 2018</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3ABionic+%28Software%29&rft.title=NDK+Revision+History&rft.description=NDK+Revision+History&rft.identifier=https%3A%2F%2Fdeveloper.android.com%2Fndk%2Fdownloads%2Frevision_history&rft.language=englisch"> </span></span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2024-03-22" href="https://de.wikipedia.org/wiki/?title=Bionic_(Software)&oldid=243332189">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>